package com.onerway.entity.payment;

import com.onerway.enums.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TxnOrder {

    /**
     * 商户号。由Onerway分配，在Onerway后台获取。
     */
    private String merchantNo;

    /**
     * 顾客每次付款的订单号，必须保证单号唯一。
     */
    private String merchantTxnId;


    /**
     * 客户在商户的唯一标识。
     */
    private String merchantCustId;


    /**
     * 订单金额，以“元”为单位。
     * 注意如有小数，保留两位小数
     */
    private String orderAmount;

    /**
     * 交易订单的货币。 请参阅 ISO 4217 货币代码
     */
    private String orderCurrency;

    /**
     * 产品类型
     */
    private ProductTypeEnum productType;

    /**
     * 支付模式。 请参阅
     * 默认为WEB。
     */
    private PaymentModeEnum paymentMode;

    /**
     * 操作系统类型。 请参阅
     * <p>
     * 注意paymentMode不是WEB时必填
     */

    private OsTypeEnum osType;

    /**
     * 交易账单信息，除订阅复购外必填。 格式为 json 字符串。 请参阅对象 TransactionInformation
     */
    private TransactionInformation billingInformation;

    /**
     * 交易邮寄信息，除订阅复购外必填。 格式为 json 字符串。 请参阅对象 TransactionInformation
     */
    private TransactionInformation shippingInformation;

    private SubProductTypeEnum subProductType;

    private TxnOrderMsg txnOrderMsg;

    private TxnTypeEnum txnType;

    /**
     * 本地支付方式信息，productType 为 LPMS 时必填，格式为 json 字符串。 请参阅对象 LpmsInfo
     */
    private LpmsInfo lpmsInfo;

    private CardInfo cardInfo;

    private String sign;
}
